#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

//int addToTarget(int from,int to)
//{
//  int i = 0;
//  int sum = 0;
//  for(i = from;i <= to ;++i)
//  {
//    sum += i;
//  }
// //_exit(21);
// // return sum;
//}
int main()
{
  pid_t id = fork();
  if(id == 0)
  {
    //子进程
    int cnt = 5;
    while(cnt)
    {
      printf("我是子进程: %d，父进程：%d,cnt: %d\n",getpid(),getppid(),cnt--);
      sleep(1);
    }
    exit(10);//进程退出
  }
  //父进程
  //sleep(15);
 // pid_t ret = wait(NULL);
  int status = 0;
  pid_t ret = waitpid(id, &status, 0);
  if(id > 0)
  {
    printf("wait sucess： %d,sig number: %d ,child exit code:%d\n", ret, (status&0x7F),(status>>8)&0xFF);
  }
  sleep(5);

//  printf("hello bit!");
//  sleep(2);
//  _exit(1);

//  printf("hello wrold\n");
//
//  int ret =addToTarget(0,100);
//  printf("sum=%d\n",ret);
//
//  while(1) sleep(1);
 //
 // int i = 0;
 // for(i = 0;i < 200; ++i)
 // {
 //   printf("%d : %s\n",i,strerror(i));
 // }
//  
//  //写代码是为了完成某件事，我如何得知我的任务跑的如何呢？
//  //进程退出码
//  int num = addToTarget(1,100);
//  if(num == 5050)
//    return 1;
//  else
//    return 0;
//  //一般有文字描述
//  //进程退出的时候，对应的退出码
//  //标定进程执行的结果是否正确
//  return 0;
}
